Synchronous Deterministic Parallel Programming for Multi-Cores with ForeC

نویسندگان

چکیده

Embedded real-time systems are tightly integrated with their physical environment. Their correctness depends both on the outputs and timeliness of computations. The increasing use multi-core processors in such is pushing embedded programmers to be parallel programming experts. However, challenging because skills, experiences, knowledge needed avoid common traps pitfalls. This article proposes ForeC synchronous multi-threaded language for deterministic, parallel, reactive multi-cores. semantics designed greatly simplify understanding debugging programs. ensures that programs can compiled efficiently execution amenable static timing analysis. ForeC’s main innovation its shared variable provides thread isolation deterministic communication. All correct by construction deadlock free no non-deterministic constructs needed. We have benchmarked our compiler several medium-sized (e.g., a 2.274-line program up 26 threads distributed 10 cores, which was based 2.155-line non-multi-threaded C program). These benchmark show achieve better performance than Esterel, widely used imperative concurrent safety-critical systems, competitive OpenMP, popular desktop solution (which implements classical multi-threading, hence intrinsically non-deterministic). also demonstrate worst-case time estimated high degree precision.

برای دانلود باید عضویت طلایی داشته باشید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Language Constructs for Safe Parallel Programming on Multi-Cores

ešects and checking are implemented in the compiler. emore speculative gradual ešect checking remains to be implemented. We have also not yet completely formalized or proven the soundness of the gradual ešect system. 5.5 Unlocking Ešects Using ešects for data race-free parallelism is conceptually very similar to using locks. Annotating a method with an ešect clause ešectively locks the data des...

متن کامل

Structured Parallel Programming with Deterministic Patterns

Many-core processors target improved computational performance by making available various forms of architectural parallelism, including but not limited to multiple cores and vector instructions. However, approaches to parallel programming based on targeting these low-level parallel mechanisms directly leads to overly complex, non-portable, and often unscalable and unreliable code. A more struc...

متن کامل

Grounding Synchronous Deterministic Concurrency in Sequential Programming

Using a new domain-theoretic characterisation we show that Berry’s constructive semantics is a conservative approximation of the recently proposed sequentially constructive (SC) model of computation. We prove that every Berry-constructive program is deterministic and deadlock-free under sequentially admissible scheduling. This gives, for the first time, a natural interpretation of Berry-constru...

متن کامل

ForkLight: A Control-Synchronous Parallel Programming Language

ForkLight is an imperative, task-parallel programming language for massively parallel shared memory machines. It is based on ANSI C, follows the SPMD model of parallel program execution, provides a sequentially consistent shared memory, and supports dynamically nested parallelism. While no assumptions are made on uniformity of memory access time or instruction– level synchronicity of the underl...

متن کامل

Parallel Programming Must Be Deterministic by Default

In today’s widely used parallel programming models, subtle programming errors can lead to unintended nondeterministic behavior and hard to catch bugs. In contrast, we argue for a parallel programming model that is deterministic by default: deterministic behavior is guaranteed unless the programmer explicitly uses nondeterministic constructs. This goal is particularly challenging for modern obje...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: ACM Transactions on Programming Languages and Systems

سال: 2023

ISSN: ['1558-4593', '0164-0925']

DOI: https://doi.org/10.1145/3591594